<?php
class Acceso_Model_Usuario extends Zend_Db_Table_Abstract
{
    protected $_name = 'susuarios.tb_usuario';
    	
	public function insertar($nombre,$apellido, $direccion,	$email, $usuario, $clave, $log_activo)
     {
		$data = array(
		'nombre' => $nombre,
		'apellido' => $apellido, 
		'direccion' => $direccion,
	    'email' => $email, 
		'usuario' => $usuario, 
		'clave' => $clave, 
		'log_activo' => $log_activo);
        $this->insert($data);
     }
	
	public function consultar_ultimo_usuario()
     {
          $select= $this->select();
          $select->from('susuarios.tb_usuario',array('ultm_id' => 'max(id_usuario)'));
          return $this->fetchRow($select);
     }
     
	function ultimoId() {
       $result = $this->Exec("SELECT last_value FROM tb_usuario_id_usuario_seq");
       $seq_array = pg_fetch_row($result, 0);
 	return $seq_array[0];
	}

    public function carga_menu_principal($idUsuario)
	 { 
		$db = Zend_Registry::get('pgdb');
		$db->setFetchMode(Zend_Db::FETCH_OBJ);
		$row = $db->query("SELECT r.descripcion as descripcion, r.nombre as nombre, r.nivel as nivel , r.id_recurso as id_recurso
		FROM  susuarios.tb_recurso r
		inner join susuarios.tb_permiso pe on pe.id_recurso = r.id_recurso
		inner join susuarios.tb_rol ro on ro.id_rol = pe.id_rol
		inner join susuarios.tb_rol_usuario ru on  ru.id_rol = ro.id_rol
		inner join susuarios.tb_usuario u on u.id_usuario = ru.id_usuario
		where r.nivel = 1 and u.id_usuario = ".(int)$idUsuario);
		$query = $row->fetchAll();
		return $query;
	 }
	 
	 public function carga_item_menu($idUsuario,$idPadre)
	 { 
		$db = Zend_Registry::get('pgdb');
		$db->setFetchMode(Zend_Db::FETCH_OBJ);
		$row = $db->query("SELECT r.id_recurso,r.descripcion as descripcion, r.nombre as nombre, r.nivel as nivel, r.id_padre as id_padre
		FROM  susuarios.tb_recurso r
		inner join susuarios.tb_permiso pe on pe.id_recurso = r.id_recurso
		inner join susuarios.tb_rol ro on ro.id_rol = pe.id_rol
		inner join susuarios.tb_rol_usuario ru on  ru.id_rol = ro.id_rol
		inner join susuarios.tb_usuario u on u.id_usuario = ru.id_usuario
		where u.id_usuario = $idUsuario and r.id_padre = $idPadre and r.nivel = 2");
		$query = $row->fetchAll();
		return $query;
	 }
	 
	 public function carga_opciones($idUsuario,$idPadre)
	 { 
		$db = Zend_Registry::get('pgdb');
		$db->setFetchMode(Zend_Db::FETCH_OBJ);
		$row = $db->query("SELECT r.id_recurso,r.descripcion as descripcion, r.nombre as nombre, r.nivel as nivel, r.id_padre as id_padre
		FROM  susuarios.tb_recurso r
		inner join susuarios.tb_permiso pe on pe.id_recurso = r.id_recurso
		inner join susuarios.tb_rol ro on ro.id_rol = pe.id_rol
		inner join susuarios.tb_rol_usuario ru on  ru.id_rol = ro.id_rol
		inner join susuarios.tb_usuario u on u.id_usuario = ru.id_usuario
		where u.id_usuario = $idUsuario and r.id_padre = $idPadre and r.nivel = 3");
		$query = $row->fetchAll();
		return $query;
	 }
	 
	 public function listar_usuario()
	 {
		//recupero objeto desde el registro
         $db = Zend_Registry::get('pgdb');
         //opcional, esto es para que devuelva los resultados como objetos $row->campo
         $db->setFetchMode(Zend_Db::FETCH_OBJ);
         $select="SELECT u.nombre, u.apellido, u.direccion, u.email, r.nombre as rol
				FROM susuarios.tb_usuario as u
				inner join susuarios.tb_rol_usuario as ru on u.id_usuario = ru.id_usuario
				inner join susuarios.tb_rol as r on r.id_rol = ru.id_rol";
         return $db->fetchAll($select);
	 }
}